package com.ruoyi.eqmonitor.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.core.annotation.Excel;

import lombok.Data;

/**
 * 设备报警对象 opt_device_alarm
 * @author ruoyi
 * @date 2022-11-25
 */
@Data
public class OptDeviceAlarm implements Serializable{

    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
	@TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String deviceCode;

    /** 站点名称 */
    @Excel(name = "站点名称")
    private String siteName;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String deviceType;

    /** 安装时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date installTime;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal abx;

    /** 纬度 */
    @Excel(name = "纬度")
    private BigDecimal aby;

    /** 报警code */
    @Excel(name = "报警code")
    private String alarmCode;

    /** 报警值 */
    @Excel(name = "报警值")
    private Double alarmCodeValue;

    /** 报警次数 */
    @Excel(name = "报警次数")
    private Integer alarmCount;

    /** 确认报警 0 待确认  1 确认 2 清除 */
    @Excel(name = "确认报警 0 待确认  1 确认 2 清除")
    private Integer confirmAlarm;

    /** 处理状态 */
    @Excel(name = "处理状态")
    private Integer processStatus;

    /** 确认人 */
    @Excel(name = "确认人")
    private Integer confirmUserid;

    /** 确认人 */
    @Excel(name = "确认人")
    private String confirmUsername;

    /** 阅读状态 */
    @Excel(name = "阅读状态")
    private Integer readStatus;

    /** 派发操作人 */
    @Excel(name = "派发操作人")
    private Integer disUserid;

    /** 派发操作人 */
    @Excel(name = "派发操作人")
    private String disUsername;

    /** 接收人 */
    @Excel(name = "接收人")
    private Integer receiveUserid;

    /** 处置情况 */
    @Excel(name = "处置情况")
    private String processDesc;

    /** 报警类型 */
    @Excel(name = "报警类型")
    private String alarmType;

    /** 报警现象 */
    @Excel(name = "报警现象")
    private String alarmPhenomenon;

    /** 报警时间 */
    @Excel(name = "报警时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date alarmTime;

    /** 最后报警时间 */
    @Excel(name = "最后报警时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastAlarmTime;

    /** 请求参数 */
    @TableField(exist = false)
    @JsonIgnore
    private Map<String, Object> params;

    /** 预警阈值 */
    @Excel(name = "预警阈值")
    private Double configAlarmValue;

    /** 上限值 */
    @Excel(name = "上限阈值")
    private Double configUpperLimit;

    /** 下限值 */
    @Excel(name = "下限阈值")
    private Double configFloorLimit;

    /** 是否持续报警 */
    @Excel(name = "是否持续报警")
    private String persistentStatus;

    /** 报警描述 */
    @Excel(name = "报警描述")
    private String described;

    /** 管点类型 */
    @TableField(exist = false)
    @Excel(name = "管点类型")
    private String pipeType;

    /** 管点物探点号 */
    @TableField(exist = false)
    @Excel(name = "管点物探点号")
    private String pipeWtdh;

    @TableField(exist = false)
    private String areaId;
    /** 分区编码 */
    @TableField(exist = false)
    private String areaCode;
    /** 分区名称 */
    @TableField(exist = false)
    @Excel(name = "片区名称")
    private String areaName;

    /** 泵站主键 */
    @TableField(exist = false)
    private Long pumpStationId;
    /** 泵站名 */
    @TableField(exist = false)
    @Excel(name = "泵站名称")
    private String pumpStationName;
}
